package SwordOffer;

/**
 * 题目：设计一个不能被继承的类
 * Java中，被final修饰的类，不能被继承
 *
 * 这里顺便复习一下抽象类和接口的区别吧：
 *  抽象类：不能被实例化，他只是把一些类的公共方法、属性抽象出来，
 *      当子类继承某个抽象类时，必须重写父类的所有抽象方法
 *       - 类，只能继承1个
 *       - abstract不能与private、static、final或native并列修饰同一个方法
 *
 *  接口：也不能被实例化，他只是抽象出某些类的行为。
 *      接口中的所有方法都抽象方法，不能包含实现的方法，也不能包含静态方法
 *      但是要想实现此接口，必须实现该接口的所有方法（即使在实现的时候 你啥也不干，也得写上）
 *       - 接口，可以实现多个（注意方法名重复）
 *       - 接口中的成员变量，会被自动转为 public static final的常量，并且必须被显示初始化
 *       - 实现接口的非抽象类必须实现接口的所有方法，而抽象类不需要
 *
 *
 * 原题是用C++设计。
 *  书中给了两种方法：
 *  Ⅰ. 把构造函数和析构函数都设为私有函数。
 *      这时，我们可以通过共有的静态函数 来创建和释放类的实例（单例模式）
 *  Ⅱ. 利用虚拟继承（没看懂 -.-）
 *
 * Created by nibnait on 2016/10/2.
 */
public abstract class f48_不能被继承的类 {
}

